package model;

import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author GRG
 * 
 */
public interface Libri {

	public void aggiungiLibro(long isbn, String titolo, String autore,
			String casaEditrice, String genere, int numCopie, String url,
			String posizioneScaffale) throws SQLException;

	/*
	 * Aggiunge Libri nella tabella Libri. Gli altri parametri quali data ecc,
	 * verranno inseriti dall'interno
	 */

	public boolean disponibile(long isbn) throws SQLException;

	/*
	 * Controlla se quel Libro e' disponibile al prestito.
	 */

	public ResultSet getInfoLibro(long isbn) throws SQLException;

	/*
	 * restitusce il ResultSet con le informazioni su titolo autore e url di un
	 * libro
	 */

	public ResultSet getUltimiPresi() throws SQLException;

	/*
	 * restituisce un ResultSet con la lista dei libri ordinata secondo la data
	 * di assegnamento
	 */

	public ResultSet getUltimiArrivi() throws SQLException;

	/*
	 * restituisce un ResultSet con la lista dei libri ordinata secondo la data
	 * di arrivo
	 */

	public ResultSet cercaLibro(String[] parametri, String[] nomiParametri)
			throws SQLException;

	/*
	 * Ricerca un Libro. Colonna indica il criterio di ricerca e nome il
	 * parametro da cercare
	 */

	public void incrementaCopie(long isbn, int idCliente) throws SQLException;

	public void decrementaCopie(long isbn) throws SQLException;

	public int copieLibri(long isbn) throws SQLException;

	public void aggiungiLibroStorico(int idCliente, long isbn)
			throws SQLException;

	public void modificaDataEffettiva(int idCliente, long isbn)
			throws SQLException;

	public boolean possoPrendereLibro(int idCliente, long isbn)
			throws SQLException;

	public boolean hoIlLibro(int idCliente, long isbn) throws SQLException;

	public boolean esiste(long isbn) throws SQLException;

	public void aggiornaCopie(int numCopie, long isbn) throws SQLException;

	public int numLibri() throws SQLException;
}
